1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| val l = List(1, 2, 3, 4, 5, 6, 7, 8)
//map函数: 逐个去操作集合中的每个元素 l.map((x: Int) => x + 1) 每个元素+1 l.map((x) => x * 2) 每个元素*2 l.map(x => x * 2) 一个参数可以省略括号,每个元素*2 l.map(_ * 2).foreach(println) 占位符 每个元素*2
//filter函数 过滤大于8的元素 l.map(_ * 2).filter(_ > 8).foreach(println)
//reduce 两两相邻的元素相加 l.reduce(_+_) // ((((((1+2)+3)+4)+5)+6)+7)+8
//reduceLeft l.reduceLeft(_-_) // ((((((1-2)-3)-4)-5)-6)-7)-8
//reduceRight l.reduceRight(_-_) // 1-(2-(3-(4-(5-(6-(7-8))))))
//fold l.fold(0)(_-_) // (((((((0-1)-2)-3)-4)-5)-6)-7)-8
//fold l.foldLeft(0)(_-_) // (((((((0-1)-2)-3)-4)-5)-6)-7)-8
//foldRight l.foldRight(0)(_-_) // 1-(2-(3-(4-(5-(6-(7-(0-8)))))))
// l.max l.sum l.min
//flatten 元素合到一个list scala> val f = List(List(1,2),List(3,4),List(5,6)) f: List[List[Int]] = List(List(1, 2), List(3, 4), List(5, 6))
scala> f.flatten res18: List[Int] = List(1, 2, 3, 4, 5, 6)
// flatMap scala> f.map(_.map(_*2)) res19: List[List[Int]] = List(List(2, 4), List(6, 8), List(10, 12))
scala> f.flatMap(_.map(_*2)) res20: List[Int] = List(2, 4, 6, 8, 10, 12)
[hadoop@hadoop ~]$ cat hello.txt hello,hello,world
val txt = scala.io.Source.fromFile("/home/hadoop/hello.txt").mkString // println(txt) val txts = List(txt) // 如何使用scala来完成wordcount统计 // 链式编程:Hibernate、Spark txts.flatMap(_.split(",")).map(x => (x,1)) //... .foreach(println)
|